Network coding is a technique whereby individual data packets are combined during transit from a producer (e.g., content provider, web site, server, etc.) to a consumer (e.g., requesting device, end point device, etc.). Generally, multiple packets are used to create a new packet set (e.g., stream), where members of the new packet set are linear combinations of the multiple input packets. Details of the network coding are proliferated with the new packet set allowing downstream network equipment (e.g., routers, switches, hubs, etc.) to reconstruct the original input packets from the new packet set through decoding.
The complexity introduced by network coding and overhead in signaling the network coding used result in a cost that is generally weighed against the benefit. However, network coding may provide network benefits by allowing for a more efficient network utilization in scenarios where multiple producers are providing data to multiple consumers.